package cn.jcby.app.lebu.utils.sub;

import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
import com.tencentcloudapi.common.AbstractModel;

import java.util.HashMap;

/**
 * @author: lihaotian
 * @since: 2023/12/27 22:17
 * @description
 **/
public class IdCardVerificationResponse extends AbstractModel {
    /**
     * 认证结果码，收费情况如下。
     收费结果码：
     0: 姓名和身份证号一致
     -1: 姓名和身份证号不一致
     不收费结果码：
     -2: 非法身份证号（长度、校验位等不正确）
     -3: 非法姓名（长度、格式等不正确）
     -4: 证件库服务异常
     -5: 证件库中无此身份证记录
     -6: 权威比对系统升级中，请稍后再试
     -7: 认证次数超过当日限制
     */
    @SerializedName("Result")
    @Expose
    private String Result;

    /**
     * 业务结果描述。
     */
    @SerializedName("Description")
    @Expose
    private String Description;

    /**
     * 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
     */
    @SerializedName("RequestId")
    @Expose
    private String RequestId;

    /**
     * Get 认证结果码，收费情况如下。
     收费结果码：
     0: 姓名和身份证号一致
     -1: 姓名和身份证号不一致
     不收费结果码：
     -2: 非法身份证号（长度、校验位等不正确）
     -3: 非法姓名（长度、格式等不正确）
     -4: 证件库服务异常
     -5: 证件库中无此身份证记录
     -6: 权威比对系统升级中，请稍后再试
     -7: 认证次数超过当日限制
     * @return Result 认证结果码，收费情况如下。
    收费结果码：
    0: 姓名和身份证号一致
    -1: 姓名和身份证号不一致
    不收费结果码：
    -2: 非法身份证号（长度、校验位等不正确）
    -3: 非法姓名（长度、格式等不正确）
    -4: 证件库服务异常
    -5: 证件库中无此身份证记录
    -6: 权威比对系统升级中，请稍后再试
    -7: 认证次数超过当日限制
     */
    public String getResult() {
        return this.Result;
    }

    /**
     * Set 认证结果码，收费情况如下。
     收费结果码：
     0: 姓名和身份证号一致
     -1: 姓名和身份证号不一致
     不收费结果码：
     -2: 非法身份证号（长度、校验位等不正确）
     -3: 非法姓名（长度、格式等不正确）
     -4: 证件库服务异常
     -5: 证件库中无此身份证记录
     -6: 权威比对系统升级中，请稍后再试
     -7: 认证次数超过当日限制
     * @param Result 认证结果码，收费情况如下。
    收费结果码：
    0: 姓名和身份证号一致
    -1: 姓名和身份证号不一致
    不收费结果码：
    -2: 非法身份证号（长度、校验位等不正确）
    -3: 非法姓名（长度、格式等不正确）
    -4: 证件库服务异常
    -5: 证件库中无此身份证记录
    -6: 权威比对系统升级中，请稍后再试
    -7: 认证次数超过当日限制
     */
    public void setResult(String Result) {
        this.Result = Result;
    }

    /**
     * Get 业务结果描述。
     * @return Description 业务结果描述。
     */
    public String getDescription() {
        return this.Description;
    }

    /**
     * Set 业务结果描述。
     * @param Description 业务结果描述。
     */
    public void setDescription(String Description) {
        this.Description = Description;
    }

    /**
     * Get 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
     * @return RequestId 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
     */
    public String getRequestId() {
        return this.RequestId;
    }

    /**
     * Set 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
     * @param RequestId 唯一请求 ID，每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
     */
    public void setRequestId(String RequestId) {
        this.RequestId = RequestId;
    }

    public IdCardVerificationResponse() {
    }

    /**
     * NOTE: Any ambiguous key set via .set("AnyKey", "value") will be a shallow copy,
     *       and any explicit key, i.e Foo, set via .setFoo("value") will be a deep copy.
     */
    public IdCardVerificationResponse(IdCardVerificationResponse source) {
        if (source.Result != null) {
            this.Result = new String(source.Result);
        }
        if (source.Description != null) {
            this.Description = new String(source.Description);
        }
        if (source.RequestId != null) {
            this.RequestId = new String(source.RequestId);
        }
    }


    /**
     * Internal implementation, normal users should not use it.
     */
    @Override
    public void toMap(HashMap<String, String> map, String prefix) {
        this.setParamSimple(map, prefix + "Result", this.Result);
        this.setParamSimple(map, prefix + "Description", this.Description);
        this.setParamSimple(map, prefix + "RequestId", this.RequestId);

    }
}
